UPDATE a table with just ~2000 rows is slow, would LOCK help? RDS Performance Insights tell me UPDATE foobar SET expire=0 is slow , foobar has about 2000 rows and there's an index on expire, there needs to be. Now, would it be faster if I did a LOCK TABLES foobar WRITE before the UPDATE? I feel like UPDATE is locking piecemeal which causes the problem.
Alternatively, as a terrible hack, I could imagine doing a CREATE TABLE LIKE ; INSERT - SELECT ; RENAME TABLE series of commands which should be lightning quick...
I hope you are using InnoDB.
Was that the entire query?  So, you are changing all rows of a 2K-row table?
Why?  Might there be another way to design the schema?  Please describe the task further.  There are several things that come to mind -- and they won't involve such a sluggish action.
How big is the table?  Is that 2000 rows out of a million?  Or 2000 out of 3000.
The query must save the old value of 2000 rows, update 2000 rows, update 2000 rows in the index.  Then later it must toss the saved old row copies.
How big is innodb_buffer_pool_size?
If it is a single statement, there is already a LOCK.  So don't bark of that tree.