Não entendi onde tem de ser aplicado essa modificação na aplicação.
Como explicado no enunciado, precisamos apenas mover o código do OnActionExecuted para o OnResultExecuted. O OnResultExecuted é executado depois do código da view, porém apenas quando a action não lança uma exceção. No caso em que a action lança uma exceção, o código do OnResultExecuted não é executado e portanto não fazemos o rollback da transação. Para resolver esse problema, precisamos verificar se existe alguma exceção no método OnActionExecuted caso a exceção seja diferente de null, queremos fazer o rollback da transação e fechar a sessão:
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.Exception != null)
{
session.Transaction.Rollback();
session.Close();
}
}