В случае возникновения исключения вся операция будет откатана. Если вы посмотрите на исходный код , то увидите, что все операции с базами данных заключены в transaction.atomic()
.
Нет способа узнать, какие ценности вызвали конфликт. Такая информация может быть доступна в сообщении об ошибке для конкретной базы данных, но это не является частью API.
Обратите внимание, что начиная с Django 2.2 появится параметр ignore_conflicts
, который позволит вам явно контролировать, будет ли операция откатываться или конфликты будут игнорироваться.