I'd probably use a temp table for that, rather than a case.
begin;
select id, new_rating into temp_ratings values (1,25),(2,94),(3,16);
update table place set rating=new_rating
from temp_ratings
where place.id=temp_ratings.id;
drop table temp_ratings;
commit;
Scales well, and almost all db engines know how to do that join. You can index the id, or use a temp table, or whatever depending on the shape and quantity of your data.(edit -- actually finished the post)