Как в Ruby on Rails сделать откаты добавления при неудачном случае у его связанных?
Использовать транзакции.
Понимаю, что вопрос был задан давно, и возможно ответ уже найден, но тут он не был озвучен, потому...
Ответ fshp правильный, но довольно сложный, учитывая имеющиеся в рельсах альтернативы.
В конкретно указанном автором случае есть более корректный вариант защиты/ролбека.def create
  subs = Subscriber.new(...)
  subs.address.new()
  subs.save
end
-- UPDATE --
Ошибся с методом создания наследуемых моделей.
Корректно это будет так:def create
  subs = Subscriber.new(...)
  subs.build_address
  subs.save
end
Либо subs.addresses.build, если адресов у подписчика много (связь has_many)
-- end update --
В данном случае создается экземпляр модели подписчика, дальше создается эксемпляр адреса, принадлежащего модели подписчика, и потом все это пытается сохраниться (записаться в БД). Если что-то идет не так, то save вернет false, при этом сам позаботиться о транзакциях и ролбеках.