docs: public UOWHandle suspend() throws CSIException {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "suspend");
          UOWHandle toReturn = null;
  
          //First, look for a global Tx, if non-existant then look for a local Tx.
          //If neither are present, return a null UOWHandle
  
          //If a global tx coordinator is on the thread, getGlobalCoord() will return it in
          //which case we know there is a global tx on the thread. If not, getGlobalCoord
          //will return null in which case we can then try to see if there is a local tx.
          if (getGlobalCoord() != null) {
              Transaction gtx = suspendGlobalTx(TIMEOUT_CLOCK_STOP);
              toReturn = new UOWHandleImpl(gtx);
          }
          //If a local tx coordinator is on the thread, getLocalCoord will return it.  If not,
          //null will be returned.
          else if (getLocalCoord() != null) {
              LocalTransactionCoordinator ltc = suspendLocalTx();
              toReturn = new UOWHandleImpl(ltc);
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "suspend : " + toReturn);
          return toReturn;
      }