Postgresql roll backward recovery
The uncommitted transactions are not escaped.  They do get replayed.  However, any process running across the new data from these transactions know to ignore them as they are not committed.  And any data marked for removal by an uncommitted transaction is not ignored, because the removal has not yet been committed.  This is the same way that in-progress transactions are ignored during normal operation, i.e., when there has been no crash.

Once the transaction is known to be aborted, then anyone who stumbles upon data from that transaction can clean it up.  Once recovery has finished, any transaction which has not had its commit record replayed by the end of recovery is known to be aborted.