ENH: Support multi row inserts in to_sql when using the sqlite fallback
Currently we do not support multi row inserts into sqlite databases
when `to_sql` is passed `method="multi"` - despite the documentation
suggesting that this is supported.

Adding support for this is straightforward - it only needs us
to implement a single method on the SQLiteTable class and so
this PR does just that.

- [x] closes #29921
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

@jorisvandenbossche  @simongibbons does this improve performance? @WillAyd 

> @simongibbons does this improve performance?

It can do in some cases e.g.

```python
In [1]: import sqlite3                                                                                 

In [2]: import pandas as pd                                                                            

In [3]: db = sqlite3.connect(":memory:")                                                               

In [4]: df = pd.DataFrame({"x": range(10000), "y": range(10000)})                                      

In [5]: %timeit df.to_sql("df", db, if_exists="replace")                                               
15 ms ± 87.2 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [6]: %timeit df.to_sql("df", db, if_exists="replace", method="multi", chunksize=100)                
11.6 ms ± 56.2 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
```

tbh I would have been happy with closing the issue with a more informative exception. But given how easy it is to support I went with that approach. Ping, would be nice to get this in before there is another merge conflict with whatsnew. @simongibbons Thanks a lot! (and sorry it took so long) I just upgraded from 0.25.3 to 1.0.3 thinking the `method` keyword would solve my problem, but I still have the same error message when I put the `method` keyword to `multi`:
```
df.to_sql("myTable", con, if_exists='append', method="multi")
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Appl\Python38-32\lib\site-packages\pandas\core\generic.py", line 2653, in to_sql
    sql.to_sql(
  File "C:\Appl\Python38-32\lib\site-packages\pandas\io\sql.py", line 512, in to_sql
    pandas_sql.to_sql(
  File "C:\Appl\Python38-32\lib\site-packages\pandas\io\sql.py", line 1734, in to_sql
    table.insert(chunksize, method)
  File "C:\Appl\Python38-32\lib\site-packages\pandas\io\sql.py", line 755, in insert
    exec_insert(conn, keys, chunk_iter)
  File "C:\Appl\Python38-32\lib\site-packages\pandas\io\sql.py", line 679, in _execute_insert_multi
    conn.execute(self.table.insert(data))
TypeError: insert expected 2 arguments, got 1
```
Instead, I now do it manually and it's a bit faster than trying to play with the `chunksize `parameter of `.to_sql`: 
```
con.executemany('INSERT INTO myTable VALUES (?, ?, ?, ?, ?, ?)', df.to_records().tolist())
con.commit()
```
