You're nearly there but it's the other way round,
transform="translate(100, 50) rotate(30) translate(-100, -50)"
is equivalent to transform="rotate(30, 100, 50)"
You kind of need to read multiple transforms from right to left as it is the rightmost part that is applied first.