correct sql query

You should use prepare only when you’re using SQL query – this function takes query and params and returns a safe SQL query filled with given params.

Its result is a SQL query. So you can (and should) use it whenever you’re creating a SQL query and put some params in it.

With $wpdb->delete or $wpdb->update you don’t create any string containing SQL query – both these functions are taking only params and the create and run the queries for you – so there is no need for preparing.

If you use $wpdb->insert, then you also don’t have to prepare – there is nothing to be prepared.

But if you insert with raw SQL, as you do in your code, then yes – you should always prepare such query.