code: final AbstractJcrProperty removeExistingProperty( Name name ) throws VersionException, LockException, RepositoryException {
          AbstractJcrProperty existing = getProperty(name);
          if (existing != null) {
              existing.remove();
              return existing;
          }
          // Return without throwing an exception to match behavior of the reference implementation.
          // This is also in conformance with the spec. See MODE-956 for details.
          return null;
      }
docs: Removes an existing property with the supplied name. Note that if a property with the given name does not exist, then this
  method returns null and does not throw an exception.
  
  @param name the name of the property; may not be null
  @return the property that was removed
  @throws VersionException if the node is checked out
  @throws LockException if the node is locked
  @throws RepositoryException if some other error occurred