docs: public void rollback(Xid xid) throws XAException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(this, tc, "rollback", new Object[] 
                       {
                        ivManagedConnection,
                        AdapterUtil.toString(xid) 
              });
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) { 
              String cId = null;
              try {
                  cId = ivManagedConnection.mcf.getCorrelator(ivManagedConnection); 
              } catch (SQLException x) {
                  // will just log the exception here and ignore it since its in trace
                  Tr.debug(this, tc, "got an exception trying to get the correlator in commit, exception is: ", x);
              }
              if (cId != null) {
                  StringBuffer stbuf = new StringBuffer(200);
                  stbuf.append("Correlator: DB2, ID: ");
                  stbuf.append(cId);
                  if (xid != null) {
                      stbuf.append("Transaction ID : ");
                      stbuf.append(xid);
                  }
                  stbuf.append(" ROLLBACK");
                  Tr.debug(this, tc, stbuf.toString());
              }
          }
  
          // Reset so we can deferred enlist in a future global transaction. 
          ivManagedConnection.wasLazilyEnlistedInGlobalTran = false; 
  
          try {
              // If no work was done during the transaction, the autoCommit value may still
              // be on.  In this case, just no-op, since some drivers like ConnectJDBC 3.1
              // don't allow commit/rollback when autoCommit is on.  
  
              ivSqlConn.rollback();
              ivStateManager.setState(WSStateManager.XA_ROLLBACK);
          } catch (SQLException sqe) {
              FFDCFilter.processException(sqe, "com.ibm.ws.rsadapter.spi.WSRdbOnePhaseXaResourceImpl.rollback", "342", this);
              Tr.error(tc, "DSA_INTERNAL_ERROR", new Object[] { "Exception caught during rollback on the OnePhaseXAResource", sqe });
              XAException xae = new XAException(XAException.XAER_RMERR);
              traceXAException(xae, currClass);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(this, tc, "rollback", "Exception"); 
              throw xae;
          } catch (TransactionException te) {
              //Exception means setState failed because it was invalid to set the state in this case
              FFDCFilter.processException(te, "com.ibm.ws.rsadapter.spi.WSRdbOnePhaseXaResourceImpl.rollback", "351", this);
              Tr.error(tc, "INVALID_TX_STATE", new Object[] { "OnePhaseXAResource.rollback()", ivManagedConnection.getTransactionStateAsString() });
              XAException xae = new XAException(XAException.XAER_RMERR);
              traceXAException(xae, currClass);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(this, tc, "rollback", "Exception"); 
              throw xae;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(this, tc, "rollback"); 
      }