docs: def _node(self, tax_id):
          """
          Returns parent_id, rank
  
          FIXME: expand return rank to include custom 'below' ranks built when
                 get_lineage is caled
          """
          s = select([self.nodes.c.parent_id, self.nodes.c.rank],
                     self.nodes.c.tax_id == tax_id)
          res = s.execute()
          output = res.fetchone()
          if not output:
              msg = 'value "{}" not found in nodes.tax_id'.format(tax_id)
              raise ValueError(msg)
          else:
              return output