code: @Override
      public <V> Property<V> property(String name, V value) {
          ElementHelper.validateProperty(name, value);
          // validate bolt support
          Neo4JBoltSupport.checkPropertyValue(value);
          // transaction should be ready for io operations
          graph.tx().readWrite();
          // property value for key
          Neo4JEdgeProperty<V> propertyValue = new Neo4JEdgeProperty<>(this, name, value);
          // update map
          properties.put(name, propertyValue);
          // set edge as dirty
          session.dirtyEdge(this);
          // update flag
          dirty = true;
          // return property
          return propertyValue;
      }
docs: {@inheritDoc}