pandas to_sql(if_exists='replace') should not commit after the drop query
#### Code Sample, a copy-pastable example if possible

it is hard to generate a reproducible code for this problem as it would need parallel processes reading from a table, and another process that updates that table frequently.

#### Problem description

https://github.com/pandas-dev/pandas/blob/d3e54851b5ab2f2c99c22b4bf5c49cea41141072/pandas/io/sql.py#L646
https://github.com/pandas-dev/pandas/blob/d3e54851b5ab2f2c99c22b4bf5c49cea41141072/pandas/io/sql.py#L647

The issue is that to_sql with (if_exists='replace') carries the two instructions separately and commits them serially into the database.

This causes 'table not found error' if multiple other processes are reading from the table as well.

The commit needs to happen after the second instruction only and not into the drop query.
