Dovrai dividerlo in 2 operazioni.
START TRANSACTION;
UPDATE table1 SET id = id + 1 WHERE id >= 3 order by id DESC;
INSERT INTO table1 (id, value) VALUES (3, 300);
COMMIT;
Nota che hai bisogno di order by
nella dichiarazione di aggiornamento, quindi inizierà prima con gli ID più alti.
Un'altra idea sarebbe dichiarare id
come decimal(10,1)
e inserisci il valore 2.5
come id tra 2 e 3.