Мне нужно было добавить к дереву метод аналогичный xpath, но кидающий исключение если элемент не найден.
Запутавшись в lxml и отчаявшись я решил уже просить вашей помощи, зашел на форум, начала писать, но в последний момент у меня получилось сделать то, что я хотел.
Выкладываю решение, возможно кому-то будет полезно.
# -*- coding: utf-8 -*-
from lxml import etree, html


class Fail(Exception):
pass


class MyTree(etree.ElementBase):
def sxpath(self, xpath):
lst = self.xpath(xpath)
if not lst:
raise Fail('Not found %s' % xpath)
return lst


parser_lookup = etree.ElementDefaultClassLookup(element=MyTree)
parser = html.HTMLParser()
parser.set_element_class_lookup(parser_lookup)

htmlstr = open('tutorial.htm', 'r').read()
tree = etree.HTML(htmlstr, parser)

xp = '/html/body/table/tbody/tr/td'

try:
print tree.sxpath(xp)
except Fail, err:
print err

print tree.xpath(xp)