It feels a bit mixed up.
I don’t think the subclass RotatingSpotLight should exist. This is a behaviour and so everything can be put in a “RotatingLightDelegate” that could be assigned an angle on construction.
The RotatingLightDelegate would replace the RotatingSplotLightDelegate – which is misnamed anyway as it can apply to any light, not just splot lights.
RotatingSplotLightDelegate is probably more accurately named “MoveOnRenderDelegate”. As an aside, updating on render is a bad idea (but not really relevant to the design pattern discussion).
The core idea that’s missing is that any delegate can wrap any light (including other delegates). If you ever start making code that relies on specific pairs of delegates/lights being used then the design has gone wrong.