A cursor object will have no rows to iterate through. What I think you want is to iterate through the results of an execute.
rows = curs.execute(""" sql code """).fetchall()
for row in rows:
print row
here is a template to upload to a volatile table in teradata from python2.7 using pyodbc:
import pyodbc
cnxn = pyodbc.connect('your_connection_string')
curs = cnxn.cursor()
curs.execute("""
CREATE VOLATILE TABLE TABLE_NAME
(
c_0 dec(10,0),
...
c_n dec(10,0)
) PRIMARY INDEX (c0)
ON COMMIT PRESERVE ROWS;
END TRANSACTION;
""")
curs.execute("""
INSERT INTO TABLE_NAME (c_0,...,c_n) VALUES (%s);
"""%value_string)
Depending on your settings in Teradata you must explicitly END TRANSACTION. You can add your loop around the INSERT to upload information line by line.