I believe your UPSERT analysis is interesting, but too simplistic for 2 major reasons:
1. the effect of locks (UPDATE uses a more restrictive lock than IF EXISTS)
2. the effect of triggers (an UPDATE will fire the trigger(s) even if no record is updated
Paul Lach