Очевидно, что эти два имеют разные варианты использования.
Первое должно быть сделано, если вам нужен доступ к измененному атрибуту до записи сохраненной. Например, вы хотите установить URL-адрес и сразу проверить измененное значение в соответствии с некоторым условием, прежде чем сохранять его в БД.
Второй подходит, если вы хотите что-то сделать с атрибутом непосредственно перед сохранением в базе данных. Таким образом, если вы получите доступ к нему между моментом установки и моментом сохранения, вы получите неизмененное значение.