code: public void deregisterTransaction(TransactionImpl tran, boolean recovered) {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "deregisterTransaction", new Object[] { this, tran, recovered });
  
          //AJQ - use concurrent set on large SMP
          if (isConcurrent)
              _transactions.remove(tran);
  
          //AJQ - new gate for synchronized block
          if (!isConcurrent || recovered) {
              synchronized (this) {
                  //AJQ - only if using standard hashset
                  if (!isConcurrent)
                      _transactions.remove(tran);
  
                  if (recovered) {
                      _recoveryManager.deregisterTransaction(tran);
                  }
              }
          }
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "deregisterTransaction");
      }
docs: This method is called to register the completion of a transaction associated
  with the managed failure scope.
  
  @param tran The transaction identity object