title: MySQLdb.cursor.execute can't run multiple queries
body: <p>We're trying to run SQL files containing multiple insert statements as a single query, but it seems <code>rollback</code> fails when any of the statements contain an error.</p>
  
  <p>MySQLd configuration:</p>
  
  <pre><code>sql_mode = STRICT_ALL_TABLES
  default-storage-engine = innodb
  </code></pre>
  
  <p>Python code:</p>
  
  <pre><code>from contextlib import closing
  import MySQLdb
  database_connection = MySQLdb.connect(host="127.0.0.1", user="root")
  with closing(database_connection.cursor()) as cursor:
      database_connection.begin()
      cursor.execute('DROP DATABASE IF EXISTS db_name')
      cursor.execute('CREATE DATABASE db_name')
      cursor.execute('USE db_name')
      cursor.execute('CREATE TABLE table_name(first_field INTEGER)')
  with closing(database_connection.cursor()) as cursor:
      try:
          database_connection.begin()
          cursor.execute('USE db_name')
          cursor.execute('INSERT INTO table_name VALUES (1)')
          cursor.execute('INSERT INTO table_name VALUES ("non-integer value")')
          database_connection.commit()
      except Exception as error:
          print("Exception thrown: {0}".format(error))
          database_connection.rollback()
          print("Rolled back")
  with closing(database_connection.cursor()) as cursor:
      try:
          database_connection.begin()
          cursor.execute('USE db_name')
          cursor.execute('INSERT INTO table_name VALUES (1); INSERT INTO table_name VALUES ("non-integer value")')
          database_connection.commit()
      except:
          print("Exception thrown: {0}".format(error))
          database_connection.rollback()
          print("Rolled back")
  </code></pre>
  
  <p>Expected result: "Exception thrown" and "Rolled back" printed twice.</p>
  
  <p>Actual result with MySQL-python 1.2.4:</p>
  
  <pre><code>Exception thrown: (1366, "Incorrect integer value: 'non-integer value' for column 'first_field' at row 1")
  Rolled back
  Exception thrown: (1366, "Incorrect integer value: 'non-integer value' for column 'first_field' at row 1")
  Traceback (most recent call last):
    File "test.py", line 30, in &lt;module&gt;
      print("Rolled back")
    File ".../python-2.7/lib/python2.7/contextlib.py", line 154, in __exit__
      self.thing.close()
    File ".../virtualenv-python-2.7/lib/python2.7/site-packages/MySQLdb/cursors.py", line 100, in close
      while self.nextset(): pass
    File ".../virtualenv-python-2.7/lib/python2.7/site-packages/MySQLdb/cursors.py", line 132, in nextset
      nr = db.next_result()
  _mysql_exceptions.OperationalError: (1366, "Incorrect integer value: 'non-integer value' for column 'first_field' at row 1")
  </code></pre>
  
  <p>What gives? Do we really have to parse the SQL to split up statements (with all the escape and quote handling that entails) to run them in multiple <code>execute</code>s?</p>