Yes, you can use SERIALIZABLE
isolation level. In the next point in the document you linked, it says:
No other transactions can modify data that has been read by the current transaction until the current transaction completes.
Other transactions cannot insert new rows with key values that would fall in the range of keys read by any statements in the current transaction until the current transaction completes.
Which is what you need.
Remember that you can change the isolation level. You can raise it to SERIALIZABLE
to do your job and then move it back to what you had before. The locks put in place when the isolation level was SERIALIZABLE
will stay in place until the end of transaction.