code: public void put(ItemData item)
     {
        // There is different commit processing for NullNodeData and ordinary ItemData.
        if (item instanceof NullItemData)
        {
           putNullItem((NullItemData)item);
           return;
        }
  
        boolean inTransaction = cache.isTransactionActive();
        try
        {
           if (!inTransaction)
           {
              cache.beginTransaction();
           }
           cache.setLocal(true);
           if (item.isNode())
           {
              putNode((NodeData)item, ModifyChildOption.NOT_MODIFY);
           }
           else
           {
              putProperty((PropertyData)item, ModifyChildOption.NOT_MODIFY);
           }
        }
        finally
        {
           cache.setLocal(false);
           if (!inTransaction)
           {
              dedicatedTxCommit();
           }
        }
     }
docs: {@inheritDoc}