Aeternity uses bitcoin-ng consensus. At each height an Aeternity node stores a single keyblock and zero or more microblocks. The microblocks contain all the transactions, and the keyblock contains the details of mining. Production of a keyblock also creates internal balance changes for expired name auctions and expired oracle queries, alongside the mining rewards.
For the purposes of Rosetta we consider the combination of a keyblock and all its associated microblocks to be a single 'block'. Microblocks are not visible to Rosetta clients.
Rosetta also expects balance changes to be applied in the same 'block'. This causes some difficulty with the normal Aeternity definition of balance at a height because first a keyblock is produced, then microblocks are added on top of the keyblock at that same height. Normally asking for the balance at a height in an Aeternity system will give the balance at the keyblock, which is before any of the transactions have been applied.
For this reason asking for the balance at a specific height using the Rosetta API will provide the balance at the start of the following keyblock (Aeternity height + 1).