code: public void update(PropertyData data, ChangedSizeHandler sizeHandler) throws RepositoryException,
        UnsupportedOperationException, InvalidItemStateException, IllegalStateException
     {
        checkIfOpened();
  
        try
        {
           String cid = getInternalId(data.getIdentifier());
  
           // update type
           if (updatePropertyByIdentifier(data.getPersistedVersion(), data.getType(), cid) <= 0)
           {
              throw new JCRInvalidItemStateException("(update) Property not found " + data.getQPath().getAsString() + " "
                 + data.getIdentifier() + ". Probably was deleted by another session ", data.getIdentifier(),
                 ItemState.UPDATED);
           }
  
           // update reference
           try
           {
              deleteReference(cid);
  
              if (data.getType() == PropertyType.REFERENCE)
              {
                 addReference(data);
              }
           }
           catch (IOException e)
           {
              throw new RepositoryException("Can't update REFERENCE property (" + data.getQPath() + " "
                 + data.getIdentifier() + ") value: " + e.getMessage(), e);
           }
  
           // do Values update: delete all and add all
           deleteValues(cid, data, true, sizeHandler);
           addValues(cid, data, sizeHandler);
  
           if (LOG.isDebugEnabled())
           {
              LOG.debug("Property updated " + data.getQPath().getAsString() + ", " + data.getIdentifier()
                 + (data.getValues() != null ? ", values count: " + data.getValues().size() : ", NULL data"));
           }
  
        }
        catch (IOException e)
        {
           if (LOG.isDebugEnabled())
           {
              LOG.error("Property update. IO error: " + e, e);
           }
           throw new RepositoryException("Error of Property Value update " + e, e);
        }
        catch (SQLException e)
        {
           if (LOG.isDebugEnabled())
           {
              LOG.error("Property update. Database error: " + e, e);
           }
           exceptionHandler.handleUpdateException(e, data);
        }
     }
docs: {@inheritDoc}