code: def __getattribute__(self, name):
      val = object.__getattribute__(self, name)
      if name == "storage_instances" and val is None:
          val = []
          with DB.readonly_cursor() as c:
              query = """SELECT *
                               FROM storage_instance
                              WHERE series = ?
                              ORDER BY instance_number"""
              c.execute(query, (self.uid,))
              cols = [el[0] for el in c.description]
              for row in c:
                  d = dict(zip(cols, row))
                  val.append(_StorageInstance(d))
          self.storage_instances = val
      return val
  
imports: import contextlib
  import getpass
  import logging
  import os
  import sqlite3
  import tempfile
  import warnings
  from io import BytesIO
  from os.path import join
  import numpy
  from nibabel.optpkg import optional_package
  from .nifti1 import Nifti1Header
label_desc: Use image node_id 2 for calling the _Series obj's underlying member method code with example usage: obj.__getattribute__(name) and returns: val