default void persistTable(Table hmsTable, boolean updateHiveTable, String metadataLocation)
      throws TException, InterruptedException {
    if (updateHiveTable) {
      metaClients().run(
          client -> {
            MetastoreUtil.alterTable(
                client, database(), table(), hmsTable, hmsEnvContext(metadataLocation));
            return null;
          });
    } else {
      metaClients().run(
          client -> {
            client.createTable(hmsTable);
            return null;
          });
    }
  }
All the HMS operations like table,view,materialized_view should implement this.
iceberg/iceberg-catalog/src/main/java/org/apache/iceberg/hive/HiveOperationsBase.java