query_update не требуется.
Добавить ON CONFLICT предложение для вас query_insert переменная.
query_insert = """INSERT INTO my_table ({})
VALUES ('{}')
ON CONFLICT ({}) DO
UPDATE
SET {}""".format(*[str(columns_to_insert), str(column_values), str(key_columns)], str(column_values_update))
Здесь,
columns_to_insert должен быть разделенным запятыми списком столбцов, в которые вы вставляете данные;
column_values должен быть разделенным запятыми списком значений для columns_to_insert ;
key_columns должен быть разделенным запятыми списком столбцов первичного ключа;
column_values_update должен быть разделенным запятыми списком column_name = column_value пар (аналогично обычной команде UPDATE).