code: public void postDelete(Transaction transaction,
                             boolean logged)
                      throws ObjectManagerException {
          final String methodName = "postDelete";
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this, cclass, methodName, new Object[] { transaction,
                                                                  new Boolean(logged) });
  
          if (logged) {
              setState(nextStateForDelete); // Make the state change.
  
          } else {
              // The transaction did not succeed in logging the delete, revert to the way we were
              // if we were the one that took the lock.     
              if (numberOfLocksTaken == 1)
                  unlock();
              owningToken.objectStore.reserve(-latestSerializedSizeDelta, false);
              latestSerializedSize = latestSerializedSize - latestSerializedSizeDelta;
          } // if (logged).
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this
                         , cclass
                         , methodName
                              );
      }
docs: Driven when the object is deleted from an object store within a transaction.
  
  A subclass may override this method to do its own delete processing after the log
  has been written.
  
  @param transaction controling the deletion.
  @param logged true if transaction logging of the delete was successful.
  @throws ObjectManagerException