yes
Well you would be doing rotations when balance factor is +2 or -2. The actual rotations done also depend on the balance factor of the children.
For a rotation where parent node is at +2 (left node is deeper) and left node's left node is deeper (meaning the insertion was done there), you would be making the left child the parent and the parent the right child of this node. You would also make the right child of this previously left child node, the left child of the previous parent node. Consider what this does to the balance factor. The balance factor of root node would be now 0 as would the balance factor for all the other nodes involved in the rotation.
So instead of just a simple left and right rotation, you should consider 4 cases where the balance can be impacted.
Insertion in left subtree of left node. Insertion in right subtree of left node, insertion in left subtree of right node and insertion in right subtree of right node. As long as your tree has a balance factor <=1, these rotations would preserve them.
Basically what am suggesting is that update the balance factor at the end of these multiple rotations rather than at the end of individual left or a right rotation.
Have something called left_left_rotate (in this case you would doing just one right rotation but all the nodes involved will have a balance factor of 0 after rotation), left_right_rotate(you would be doing a single right rotate followed by a single left rotate) and the balance factor of all nodes involved will be 0 after rotation, right_right_rotate (a single left rotate) and balance factor would be 0 for all nodes involved and a right_left_rotate(a left rotate followed by right rotate) and balance factor of all nodes involved would be 0 after both rotations.
This way you dont have to scratch your head thinking about what the balance factor will be after each individual rotate. Sometimes you might need two rotations and sometimes just a single rotation.