code: public <K, V> void putMapEntry(PropertyMapKey<K, V> property, K key, V value) {
      Map<K, V> map = get(property);
  
      if (!property.allowsOverwrite() && map.containsKey(key)) {
        throw new ProcessEngineException("Cannot overwrite property key " + key + ". Key already exists");
      }
  
      map.put(key, value);
  
      if (!contains(property)) {
        set(property, map);
      }
    }
docs: Insert the value to the map to which the specified property key is mapped. If
  this properties contains no mapping for the property key, the value insert to
  a new map witch is associate the the specified property key.
  
  @param <K>
  the type of keys maintained by the map
  @param <V>
  the type of mapped values
  @param property
  the property key whose associated list is to be added
  @param value
  the value to be appended to list