docs: public void store(Object obj, Identity oid, ClassDescriptor cld,  boolean insert, boolean ignoreReferences)
      {
          if(obj == null || nowStoring.contains(obj))
          {
              return;
          }
  
          /*
          if the object has been deleted during this transaction,
          then we must insert it
          */
          //System.out.println("## insert: " +insert + " / deleted: " + deletedDuringTransaction);
          if (!insert)
          {
              insert = deletedDuringTransaction.contains(oid);
          }
  
          //************************************************
          // now store it:
          if(isTxCheck() && !isInTransaction())
          {
              if(logger.isEnabledFor(Logger.ERROR))
              {
                  try
                  {
                      throw new Exception("** Try to store object without active PersistenceBroker transaction **");
                  }
                  catch(Exception e)
                  {
                      logger.error("No running tx found, please only store in context of an PB-transaction" +
                      ", to avoid side-effects - e.g. when rollback of complex objects", e);
                  }
              }
          }
          // Invoke events on PersistenceBrokerAware instances and listeners
          if (insert)
          {
              BEFORE_STORE_EVENT.setTarget(obj);
              fireBrokerEvent(BEFORE_STORE_EVENT);
              BEFORE_STORE_EVENT.setTarget(null);
          }
          else
          {
              BEFORE_UPDATE_EVENT.setTarget(obj);
              fireBrokerEvent(BEFORE_UPDATE_EVENT);
              BEFORE_UPDATE_EVENT.setTarget(null);
          }
  
          try
          {
              nowStoring.add(obj);
              storeToDb(obj, cld, oid, insert, ignoreReferences);
          }
          finally
          {
              // to optimize calls to DB don't remove already stored objects
              nowStoring.remove(obj);
          }
  
  
          // Invoke events on PersistenceBrokerAware instances and listeners
          if (insert)
          {
              AFTER_STORE_EVENT.setTarget(obj);
              fireBrokerEvent(AFTER_STORE_EVENT);
              AFTER_STORE_EVENT.setTarget(null);
          }
          else
          {
              AFTER_UPDATE_EVENT.setTarget(obj);
              fireBrokerEvent(AFTER_UPDATE_EVENT);
              AFTER_UPDATE_EVENT.setTarget(null);
          }
          // end of store operation
          //************************************************
  
          // if the object was stored, remove it from deleted set
          if(deletedDuringTransaction.size() > 0) deletedDuringTransaction.remove(oid);
  
          // let the connection manager to execute batch
          connectionManager.executeBatchIfNecessary();
      }