code: protected PropertyData updatePropertyData(InternalQName name, List<ValueData> values) throws RepositoryException
     {
        PropertyData existed =
           (PropertyData)dataManager.getItemData(nodeData(), new QPathEntry(name, 0), ItemType.PROPERTY);
  
        if (existed == null)
        {
           throw new RepositoryException("Property data is not found " + name.getAsString() + " for node "
              + nodeData().getQPath().getAsString());
        }
  
        if (!existed.isMultiValued())
        {
           throw new ValueFormatException("An existed property is single-valued " + name.getAsString());
        }
  
        TransientPropertyData tdata =
           new TransientPropertyData(QPath.makeChildPath(getInternalPath(), name), existed.getIdentifier(), existed
              .getPersistedVersion(), existed.getType(), existed.getParentIdentifier(), existed.isMultiValued(), values);
  
        return tdata;
     }
docs: ////////////////// Item implementation ////////////////////