Works for me
Code:
calibre-debug -c "from calibre.library import db; db = db(); id = list(db.all_ids())[-1]; orig = db.title(id, True); upper = orig.upper(); db.set_title(id, upper); print orig, db.title(id, True)"
And set_metadata() just calls set_title(). So your problem is elsewhere.