Если вы выполняете session.commit () перед заключительным оператором печати, будет установлен атрибут id. Как написано, у движка нет причин выполнять какие-либо SQL-запросы, поэтому объект еще не вставлен. Как только запрос будет запущен (при сбросе сеанса или фиксации), там будет идентификатор.