@Override
  public void commit() {
    this.delegate.commit();
    if (transaction != null && watermarkGenerator != null) {
      long currentWatermark = TablePropertyUtil.getTableWatermark(mixedTable.properties());
      long newWatermark = watermarkGenerator.watermark();
      if (newWatermark > currentWatermark) {
        transaction
            .updateProperties()
            .set(TableProperties.WATERMARK_TABLE, String.valueOf(newWatermark))
            .commit();
      }
    }
    if (transaction != null && autoCommitTransaction) {
      transaction.commitTransaction();
    }
  }
Abstract implementation of {@link PendingUpdate}, adding mixed-format logics like tracing and
watermark generating for iceberg operations.

@param <T> Java class of changes from this update; returned by {@link #apply} for validation.
amoro-format-iceberg/src/main/java/org/apache/amoro/op/MixedUpdate.java