presto-iceberg/src/main/java/io/prestosql/plugin/iceberg/IcebergMetadata.java/IcebergMetadata/beginInsert
class IcebergMetadata:    @Override
    public ConnectorInsertTableHandle beginInsert(ConnectorSession session, ConnectorTableHandle tableHandle)
    {
        IcebergTableHandle table = (IcebergTableHandle) tableHandle;
        org.apache.iceberg.Table icebergTable = getIcebergTable(metastore, hdfsEnvironment, session, table.getSchemaTableName());

        for (NestedField column : icebergTable.schema().columns()) {
            io.prestosql.spi.type.Type type = toPrestoType(column.type(), typeManager);
            if (type instanceof DecimalType) {
                throw new PrestoException(NOT_SUPPORTED, "Writing to columns of type decimal not yet supported");
            }
            if (type instanceof TimestampType) {
                throw new PrestoException(NOT_SUPPORTED, "Writing to columns of type timestamp not yet supported");
            }
        }

        transaction = icebergTable.newTransaction();

        return new IcebergWritableTableHandle(
                table.getSchemaName(),
                table.getTableName(),
                SchemaParser.toJson(icebergTable.schema()),
                PartitionSpecParser.toJson(icebergTable.spec()),
                getColumns(icebergTable.schema(), typeManager),
                getDataPath(icebergTable.location()),
                getFileFormat(icebergTable));
    }