It's obviously not very performant since you have to load and save a customer record twice, so I'd use it sparingly, but it does work. YMMV of course. Obvious enhancements would include wrapping try catches around the save actions, but where I use it I put the whole thing in a try catch.