Failed commits can give inconsistent view of data
When a commit fails, your view of the repository is updated to include
changes committed by other users since your transaction began. Your
own changes are preserved. However, this action can generate a view
in which different subnodes of a single multi-part object (such as
an NSC) reflect different temporal views of the repository. Queries
may return wrong answers, or code may behave strangely.
To avoid any of these possible inconsistencies, you should abort
immediately after a failed commit or false continueTransaction. If you
want to attempt a recommit after an abort, you must compute all of the
necessary information before you begin the commit, or you may end up
trying to commit inconsistent data on the next try.