Transactions vs. Locking Tables in MySQL

I’m a little puzzled about transactions vs locking tables to preserve database integrity and ensuring a SELECT and UPDATE remain in sync with no other connections interfering. I have to:

SELECT * FROM table WHERE (...) LIMIT 1

if (condition passes) {
   // Update row I got from the select 
   UPDATE table SET column = "value" WHERE (...)

   ... other logic (including INSERT some data) ...
}

I need to make sure that no other queries conflict and that I can execute the same SELECT (reading the ‘old value’) before that connection finishes updating the data as they’ve tried to here in this example.
I know I can use the LOCK TABLES table to ensure that only one connection is doing this at a time and then unlock it when I’m done, but it seems excessive. Is it the same as enclosing that in a transaction (ensuring that no other connection attempts the same procedure while another is still processing)? Alternatively, would a SELECT, FOR UPDATE, or SELECT … LOCK IN SHARE MODE be better?