This code (example is in AngelScript) should do what you’re after, pivoting around a local space point (Vector3 localPivot). Because the coordinate space choice isn’t obvious and there are many kinds of orbits you might want, I believe it’s better to do with existing API functions and not expand the Node class to contain extra state for a pivot point, so that it stays as lean and simple as possible.
Quaternion delta(0, 10 * timeStep, 0); // This could be any rotation
Vector3 rotatedPivot = delta * -localPivot + localPivot;
Vector3 newPos = node.transform * rotatedPivot;
Quaternion newRot = delta * node.rotation;
node.SetTransform(newPos, newRot);
EDIT: now that the transform space refactoring is in, you should also be able to do this simply with
node.RotateAround(localPivot, delta, TS_LOCAL);
Note that the localPivot will be affected by the node’s local scale.