Получается, что даже без фиксации транзакции вручную, до фиксации TX, у человека есть ID после вызова метода save().
Разве не база данных отвечает за присвоение поля ID? Если да, то как поле ID может быть заполнено до фиксации? Происходит ли какое-либо взаимодействие с БД до фиксации TX?