code: @Override
      public void rollback() throws IllegalStateException, SecurityException, SystemException
      {
  
          try
          {
              Transaction tx = threadLocal.get();
              if (tx == null)
              {
                  throw new IllegalStateException("Cannot locate a Transaction for rollback.");
              }
  
              if (log.isDebugEnabled())
                  log.info("Rollback transaction:" + tx);
  
              tx.rollback();
  
          }
          finally
          {
              if (log.isDebugEnabled())
                  log.info("Resetting after rollback.");
              threadLocal.set(null);
              timerThead.set(null);
          }
      }
docs: /*
  (non-Javadoc)
  
  @see javax.transaction.UserTransaction#rollback()