code: public ElementBuilder<T> setProperty(String name, Object value, Visibility visibility) {
          return setProperty(name, value, Metadata.create(FetchHints.ALL), visibility);
      }
docs: Sets or updates a property value. The property key will be set to a constant. This is a convenience method
  which allows treating the multi-valued nature of properties as only containing a single value. Care must be
  taken when using this method because properties are not only uniquely identified by just key and name but also
  visibility so adding properties with the same name and different visibility strings is still permitted.
  <p>
  The added property will also be indexed in the configured search provider. The type of the value
  will determine how it gets indexed.
  
  @param name       The name of the property.
  @param value      The value of the property.
  @param visibility The visibility to give this property.