docs: public void put(@NotNull final PersistentStoreTransaction txn,
                      final long localId,
                      @NotNull final ByteIterable value,
                      @Nullable final ByteIterable oldValue,
                      final int propertyId,
                      @NotNull final ComparableValueType type) {
          final Store valueIdx = getOrCreateValueIndex(txn, propertyId);
          final ByteIterable key = PropertyKey.propertyKeyToEntry(new PropertyKey(localId, propertyId));
          final Transaction envTxn = txn.getEnvironmentTransaction();
          primaryStore.put(envTxn, key, value);
          final ByteIterable secondaryValue = LongBinding.longToCompressedEntry(localId);
          boolean success;
          if (oldValue == null) {
              success = allPropsIndex.put(envTxn, IntegerBinding.intToCompressedEntry(propertyId), secondaryValue);
          } else {
              success = deleteFromStore(envTxn, valueIdx, secondaryValue, createSecondaryKeys(store.getPropertyTypes(), oldValue, type));
          }
          if (success) {
              for (final ByteIterable secondaryKey : createSecondaryKeys(store.getPropertyTypes(), value, type)) {
                  valueIdx.put(envTxn, secondaryKey, secondaryValue);
              }
          }
          checkStatus(success, "Failed to put");
      }