запись, да.
Можно ловить, но некрасиво получается.. у меня не одно такое поле, пока что два, где нужны уникальные записи. А потом может будут еще. Мне кажется неправильным для каждой записи каждого поля ловить и подавлять эту ошибку.
Можно внутри одной транзакции во взрослой базе делать select , проверять и делать insert.
В postgres можно явно сказать базе что делать, если запись уже есть, которую вставляем.
Sqlalchemy даже это позволяет в коде написать.