As currently implemented:
No later than every 60 seconds, the edge historian runs a maintenance task that finds the oldest timestamp in the historian, and then deletes all data older than (not equal to) that timestamp.
There is no logic I can see to evict new incoming data eagerly, so you absolutely could exceed the row "limit" for some period of time until records are evicted.
The tags.history.InternalHistorian.Engine
logger on debug or trace would be informative to follow, OP.