code: @Override
     public Transaction suspend() throws SystemException {
        Transaction retval = getTransaction();
        setTransaction(null);
        if (trace) log.tracef("Suspending tx %s", retval);
        return retval;
     }
docs: Suspend the association the calling thread has to a transaction, and return the suspended transaction. When
  returning from this method, the calling thread is no longer associated with a transaction.
  
  @return The transaction that the calling thread was associated with, or <code>null</code> if the calling thread
  was not associated with a transaction.
  @throws javax.transaction.SystemException
  If the transaction service fails in an unexpected way.