Более правильный алгоритм сохранения в зависимости от loaded_from_db когда делается load_from_array - теперь проверяется также отсутствие заполненного первичного ключа и реальное наличие записи в базе