Прежде всего, должен быть лучший способ решить эту проблему, а не полагаться на то, что идентификаторы являются последовательными для одного пользователя.
Действительно, существует вероятность возникновения проблемы параллелизма.В других СУБД, таких как Oracle, вместо auto_increment есть последовательности, которые лучше подходят для такого рода вещей.Вы можете подражать этому, имея вспомогательную таблицу только с одной строкой.В этом случае для вашего поля идентификатора (или любого другого) НЕ будет установлено значение auto_increment, и у вас будет таблица с именем sequence
(например), в которой вы сохраните последний идентификатор.Затем, перед вставкой 64 новых записей, вы запросите у этой таблицы последний идентификатор, а затем обновите его.
Примерно так (не обращайте внимания на функции PHP, простокод понятен):
// Get the last ID
$last_id = query('SELECT last_id FROM sequence LIMIT 1');
// Store the last ID in your code and then update the new value
$new_id = $last_id + 64;
query('UPDATE sequence SET last_id = :new_id', array('new_id' => $new_id));
// Make sure your DB class is set on auto_commit or commit the transaction here
// Insert your new records
for ($i = ++$last_id; $i < $new_id; $i++) {
query('INSERT INTO picks (id, user_id) VALUES (:id, :user_id)', array('id' => $i, 'user_id' => $user_id));
}