code: SITransaction getContainerTransaction(
              final ConnectionManager connectionManager) throws ResourceException {
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.entry(this, TRACE, "getContainerTransaction",
                      connectionManager);
          }
  
          SITransaction currentTransaction = getCurrentTransaction();
  
          if ((currentTransaction == null)
                  && (connectionManager instanceof LazyEnlistableConnectionManager)) {
  
              ((LazyEnlistableConnectionManager) connectionManager)
                      .lazyEnlist(this);
              currentTransaction = getCurrentTransaction();
          }
  
          if (TraceComponent.isAnyTracingEnabled() && TRACE.isEntryEnabled()) {
              SibTr.exit(this, TRACE, "getContainerTransaction",
                      currentTransaction);
          }
          return currentTransaction;
  
      }
docs: Returns the current container transaction. If we don't already have a
  transaction and the given connection manager supports it, perform a lazy
  enlist and then check again.
  
  @param connectionManager
  the connection manager
  @return the current container transaction
  @throws ResourceException
  if lazy enlistment fails