kfedor: вы не совсем точно задали вопрос тогда. save тут у вас вызывается на связи hasMany, а не на самой модели. Тогда ответ такой: save используется для сохранения и привязки связанной модели для hasMany, associate аналогично для belongsTo.
Вызов associate для posts некорректен, так как у связи hasMany нет такого метода, будет ошибка, скорее всего.
"При обновлении связей belongsTo («принадлежит к») вы можете использовать метод associate(). Он установит внешний ключ на связанной модели". Я так думаю associate просто делает выборку, а save это уже процедура сохранения в бд.