Fix the control flow of update() method
This patch fixes the control flow of registration.update() method such
that the algorithm returns a promise rejected with an exception on error
conditions. Before this patch, the steps rejected a non-returned promise
and aborted the steps right away.
Issue raised through #1152.