What kind of a lock does IN keyword takes in SQL
See File Locking And Concurrency In SQLite Version 3.

There is a single lock for the entire database file.

When the transaction reads the database for the first time, it takes a read lock (a SHARED lock). This happens not when the IN is executed, and not before that when the subquery is executed, but even before that when the database reads the system table to get information about table1.

When the transaction writes to the database for the first time (i.e., when at least one row is actually UPDATEd), it takes a write lock (a RESERVED lock, and later PENDING/EXCLUSIVE when the cached changes are actually written at the end of the transaction).