<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_first_row(row, url_instance):
 """ Static method that parses a given table row element by executing `Parser.FIRST_ROW_XPATH` and scrapping torrent's id, title, tracked by status, category url and torrent url. Used specifically with a torrent's first table row. :param lxml.HtmlElement row: row to parse :param urls.Url url_instance: Url used to combine base url's with scrapped links from tr :return: scrapped id, title, tracked by status, category url and torrent url :rtype: list """

        tags = row.xpath(Parser.FIRST_ROW_XPATH)
        category_url = url_instance.combine(tags[0].get('href'))
        title = unicode(tags[1].text)
        # work with the incomplete URL to get str_id
        torrent_url = tags[1].get('href')
        str_id = torrent_url.split('details/')[1]
        str_id = str_id[:-1] if str_id.endswith('/') else str_id
        # complete the torrent URL with BASE_URL
        torrent_url = url_instance.combine(torrent_url)

        # means that torrent has external property
        if len(tags) == 3:
            # monkey patch the missing external query param
            category_url += '&external=1'
            tracked_by = '(external)'
        else:
            tracked_by = 'Demonoid'
        return [str_id, title, tracked_by, category_url, torrent_url]