code: public void add(Supplier<JournalContext> ctx, String path, Map<PropertyKey, String> properties) {
      try (LockResource r = new LockResource(mLock.writeLock())) {
        if (!properties.isEmpty()) {
          Map<String, String> newProperties = mState.getProperties(path);
          properties.forEach((key, value) -> newProperties.put(key.getName(), value));
          mState.applyAndJournal(ctx, PathPropertiesEntry.newBuilder().setPath(path)
              .putAllProperties(newProperties).build());
        }
      }
    }
docs: Adds properties for path.
  
  If there are existing properties for path, they are merged with the new properties.
  If a property key already exists, its old value is overwritten.
  
  @param ctx the journal context
  @param path the path
  @param properties the new properties