code: public final void persist(BatchingContext batchingContext, TransactionState tranState)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "persist", new Object[] { batchingContext, tranState});
  
          if ((tranState == TransactionState.STATE_COMMITTED)
              || (tranState == TransactionState.STATE_COMMITTING_1PC)
              || (tranState == TransactionState.STATE_COMMITTING_2PC))
          {
              batchingContext.delete(getPersistable());
          }
          else if ((tranState == TransactionState.STATE_PREPARED)
                   || (tranState == TransactionState.STATE_PREPARING))
          {
              Persistable tuple = getPersistable();
              tuple.setLogicallyDeleted(true);
              batchingContext.updateLogicalDeleteAndXID(tuple);
          }
          else if ((tranState == TransactionState.STATE_ROLLEDBACK)
                   || (tranState == TransactionState.STATE_ROLLINGBACK))
          {
              Persistable tuple = getPersistable();
              tuple.setLogicallyDeleted(false);
              batchingContext.updateLogicalDeleteAndXID(tuple);
          }
          else
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "persist");
              throw new IllegalStateException(nls.getFormattedMessage("INVALID_TASK_OPERATION_SIMS1520", new Object[] {tranState}, null));
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "persist");
      }
docs: /*
  (non-Javadoc)
  @see com.ibm.ws.sib.msgstore.persistence.Operation#persist(com.ibm.ws.sib.msgstore.persistence.BatchingContext, int)