def _append_param_insert_pk(compiler, stmt, c, values, kw):
    if (
            (
                # column has a Python-side default
                c.default is not None and
                (
                    # and it won't be a Sequence
                    not c.default.is_sequence or
                    compiler.dialect.supports_sequences
                )
            )
            or
            (
                # column is the "autoincrement column"
                c is stmt.table._autoincrement_column and
                (
                    # and it's either a "sequence" or a
                    # pre-executable "autoincrement" sequence
                    compiler.dialect.supports_sequences or
                    compiler.dialect.preexecute_autoincrement_sequences
                )
            )
    ):
        values.append(
            (c, _create_prefetch_bind_param(compiler, c))
        )
    elif c.default is None and c.server_default is None and not c.nullable:
        # no .default, no .server_default, not autoincrement, we have
        # no indication this primary key column will have any value
        _raise_pk_with_no_anticipated_value(c)
Create a bound parameter in the INSERT statement to receive a
dataset/ETHPy150Open zzzeek/sqlalchemy/lib/sqlalchemy/sql/crud.py/_append_param_insert_pk