undo means that reading the WAL logs and able to rollback a row back
to its original state before the update. Typically it is used to
rollback a long running transaction which got aborted due to a crash.
Here is an example:
Not an expert here but...
It doesn't matter why the newly written data was deemed invalid, MVCC ensures that absent a successful commit all of that data is considered invisible to anything other than the session writing the data. Eventually vacuum is needed to cleanup the dead data.
David J.