docs: public void abortAdd(final PersistentTransaction transaction) throws SevereMessageStoreException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "abortAdd", transaction);
  
          synchronized (this)
          {
              if ((_itemLinkState == ItemLinkState.STATE_ADDING_LOCKED)
                  || (_itemLinkState == ItemLinkState.STATE_ADDING_UNLOCKED))
              {
                  _assertCorrectTransaction(transaction);
  
                  MessageStoreImpl msi = getMessageStoreImpl();
                  Expirer expirer = msi._getExpirer();
                  long expiryTime = getTuple().getExpiryTime();
                  if (null != expirer && 0 != expiryTime)
                  {
                      expirer.removeExpirable(this);
                  }
  
                  // Remove from the DeliveryDelayManager as well
                  DeliveryDelayManager deliveryDelayManager = msi._getDeliveryDelayManager();
                  long deliveryDelayTime = getTuple().getDeliveryDelayTime();
                  if (null != deliveryDelayManager && 0 != deliveryDelayTime) {
                      deliveryDelayManager.removeDeliveryDelayable(this);
                  }
  
                  // going back to 'not stored' state requires a decrement in total count
                  ListStatistics stats = getParentStatistics();
  
                  // Defect 510343.1
                  stats.decrementAdding(_inMemoryItemSize);
  
                  _lockID = NO_LOCK_ID;
                  _transactionId = null;
                  _itemLinkState = ItemLinkState.STATE_NOT_STORED;
  
                  msi.unregister(this);
  
                  // Now, pay attention. This was added under defect 290610.
                  // It looks it was omitted in changes for v6.0.2 and would result
                  // in rolled back additions leaking into the linked lists.
                  unlink();
              }
              else
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled())
                      SibTr.event(this, tc, "Invalid Item state: " + _itemLinkState);
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      SibTr.exit(this, tc, "abortAdd");
                  throw new StateException(_itemLinkState.toString());
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "abortAdd");
      }