Image.setRotation depends on OpenGL's glRotate/glTranslate, which won't work within startUse/endUse (this is simply an OpenGL limitation).
Instead, to rotate within startUse/endUse, you need to transform the vertices before passing them to the GPU.
I've added this functionality to the dev branch on bitbucket: Image.drawEmbedded(x, y, width, height, rotation)
The downside is that it needs to perform the rotation transform every time you call drawEmbedded. If you are finding this to be a bottleneck (which it probably won't be...) then you can use something like this utility
which would allow you to store the transformed vertices instead of calculating the rotation more than necessary.
--For those wondering:
Why overload with a rotation parameter when Image has setRotation/getRotation? Here's my rationale for overloading and ignoring getRotation: (a) IMO it is a design flaw to have Image store things like alpha/rotation, (b) drawEmbedded has never relied on getAlpha/getRotation in the past, (c) to maintain consistency with the drawEmbedded method which draws a sub image (i.e. a "fresh copy" so to speak, as if we used getSubImage to draw).
The Image class is a bit of a mess; I'm doing what I can to clean it up when I have time.