code: def test_label_rotation_op_update(self):
      labels = HoloMap(
          {
              0: Labels(
                  [(0, 0, 45), (0, 1, 180), (0, 2, 90)],
                  vdims="rotation",
              ),
              1: Labels(
                  [(0, 0, 30), (0, 1, 120), (0, 2, 60)],
                  vdims="rotation",
              ),
          }
      ).opts(rotation="rotation")
      plot = mpl_renderer.get_plot(labels)
      artist = plot.handles["artist"]
      self.assertEqual(
          [a.get_rotation() for a in artist], [45, 180, 90]
      )
      plot.update((1,))
      artist = plot.handles["artist"]
      self.assertEqual(
          [a.get_rotation() for a in artist], [30, 120, 60]
      )
  
imports: import numpy
  from holoviews.core.dimension import Dimension
  from holoviews.core.options import Cycle
  from holoviews.core.spaces import HoloMap
  from holoviews.element import Labels
  from holoviews.plotting.util import rgb2hex
  from .test_plot import TestMPLPlot, mpl_renderer
label_desc: Use image node_id 15 for calling the TestLabelsPlot obj's underlying member method code with example usage: obj.test_label_rotation_op_update() without return types