There is no perfect way to handle this with out you writing
more complicated code.
A good compromise is to replace this line:
<cfset cols = listToArray(row, tabChar)>
with this:
<cfset cols = listToArray (Replace (row, tabChar &
tabChar, tabChar & "{empty}" & tabChar, "ALL"),
tabChar)>