docs: public <X> void propertyImmutable(P property, X newValue, @Nullable X foundValue, Function<X, Object> converter) {
          Objects.requireNonNull(property);
  
          if (foundValue == null) {
              property(property, converter.apply(newValue));
  
          } else if (!foundValue.equals(newValue)) {
              throw TransactionException.immutableProperty(foundValue, newValue, property);
          }
      }