code: public void delete(PropertyData data, ChangedSizeHandler sizeHandler) throws RepositoryException,
        UnsupportedOperationException, InvalidItemStateException, IllegalStateException
     {
        checkIfOpened();
  
        final String cid = getInternalId(data.getIdentifier());
  
        try
        {
           deleteValues(cid, data, false, sizeHandler);
  
           // delete references
           deleteReference(cid);
  
           // delete item
           int nc = deleteItemByIdentifier(cid);
           if (nc <= 0)
           {
              throw new JCRInvalidItemStateException("(delete) Property not found " + data.getQPath().getAsString() + " "
                 + data.getIdentifier() + ". Probably was deleted by another session ", data.getIdentifier(),
                 ItemState.DELETED);
           }
  
           if (LOG.isDebugEnabled())
           {
              LOG.debug("Property deleted " + data.getQPath().getAsString() + ", " + data.getIdentifier()
                 + ((data).getValues() != null ? ", values count: " + (data).getValues().size() : ", NULL data"));
           }
  
        }
        catch (IOException e)
        {
           if (LOG.isDebugEnabled())
           {
              LOG.error("Property remove. IO error: " + e, e);
           }
           throw new RepositoryException("Error of Property Value delete " + e, e);
        }
        catch (SQLException e)
        {
           if (LOG.isDebugEnabled())
           {
              LOG.error("Property remove. Database error: " + e, e);
           }
           exceptionHandler.handleDeleteException(e, data);
        }
     }
docs: {@inheritDoc}