The intended behaviour is to always update regardless of exception.

Its clearer to decouple update from finish. But also need to make
sure we don't do the initial update, unless we are doing generation.