private void writeBasePreconditions() {
      if (table.isKeyedTable()) {
        Preconditions.checkNotNull(transactionId);
      } else {
        Preconditions.checkArgument(transactionId == null);
      }
    }
Builder to create writers for {@link KeyedTable} writting {@link Record}.
amoro-format-iceberg/src/main/java/org/apache/amoro/io/writer/GenericTaskWriters.java