VBA does not save when you close. It does write the battery file whenever a rom is closed, unloaded, you load a new rom, etc... If someone is saving, it is the game that's saving it for you.
If you really hate this, then use save states. Problem gone.