code: def test_update_images(self):
      (
          self.fig.add_layout_image(opacity=0.1, source="red")
          .add_layout_image(opacity=0.2, source="blue")
          .add_layout_image(opacity=0.3, source="red", row=1, col=1)
          .add_layout_image(opacity=0.4, row=1, col=2)
          .add_layout_image(opacity=0.5, row=1, col=2, secondary_y=True)
          .add_layout_image(opacity=0.6, source="blue", row=2, col=1)
      )
  
      self.assert_update(
          "images", [0, 1, 2, 3, 4, 5], patch=dict(opacity=0)
      )
      self.assert_update(
          "images",
          [1, 5],
          patch=dict(opacity=0),
          selector=dict(source="blue"),
      )
      self.assert_update(
          "images", [2, 3, 4], patch=dict(opacity=0), row=1
      )
      self.assert_update("images", [2, 5], patch=dict(opacity=0), col=1)
      self.assert_update(
          "images", [4], patch=dict(opacity=0), secondary_y=True
      )
  
imports: import types
  from unittest import TestCase
  import plotly.graph_objs
  from plotly.subplots import make_subplots
  import pytest
label_desc: Use image node_id 14 for calling the TestSelectForEachUpdateAnnotations obj's underlying member method code with example usage: obj.test_update_images() without return types