code: void preBackout(Transaction transaction)
                      throws ObjectManagerException {
          final String methodName = "preBackout";
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this, cclass, methodName, new Object[] { transaction });
  
          // Allow any last minute changes before we backout.
          for (java.util.Iterator tokenIterator = callbackTokens.iterator(); tokenIterator.hasNext();) {
              Token token = (Token) tokenIterator.next();
              ManagedObject managedObject = token.getManagedObject();
  
              // Drive the preBackout method for the object.
              managedObject.preBackout(transaction);
          } // for... callbackTokens.
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this, cclass, methodName);
      }
docs: Before the transaction is backed out, give the ManagedObjects a chance to adjust their transient state to reflect
  the final outcome. It is too late for them to adjust persistent state as that is already written to the log
  assuming an outcome of Commit.
  
  @param transaction the external Transaction.
  @throws ObjectManagerException