Improved Shield.CommitCheck.

It now catches excptions while under lock, and rolls all items back, since the default
rollback cannot know which writeStamp the items were locked under, if any! It must be
done while still under lock.