title: Insert multiple rows using execute
body: <p>I wish to execute the following statement:</p>
  
  <pre><code>c.execute('INSERT INTO artists (name, score) VALUES("Buddy Rich", 10), ("Candido", 9), ("Charlie Byrd", 8);')
  </code></pre>
  
  <p>but instead of hardcoding the values as above, I have them in a variable:</p>
  
  <pre><code>scores = (("Buddy Rich", 10), ("Candido", 9), ("Charlie Byrd", 8))
  </code></pre>
  
  <p>how do I use <code>scores</code> with <code>execute()</code>, where <code>scores</code> could contain any number of values?</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>I wish to be able to guarantee that if the data is inserted into the table, that all the data, or none of the data, is inserted even if there is a program crash. If there is a program crash while running <code>executemany</code>, is there a risk that only some of the rows get added?</p>
  
  <p>For example, can this result in only some of the rows being added:</p>
  
  <pre><code>try:
     c.executemany('INSERT INTO artists (name, score) VALUES (?, ?)', scores)
  except:
     c.commit() 
  </code></pre>