wp_set_object_terms() — prevent overwrite?

From my understanding (and before trial and error),

wp_set_object_terms( 'post_id', 'add_this_term', 'in_this_taxonomy');

But from the Codex, apparently adding the term will overwrite any other terms that are set for that post and that taxonomy?

Is this right? What if the terms are nested?

Solutions Collecting From Web of "wp_set_object_terms() — prevent overwrite?"

wp_set_object_terms() has a fourth argument called append. Setting that to true during the call should add the term without unsetting the already set terms.

wp_set_object_terms( $post_id, 'add_this_term', 'in_this_taxonomy', true);

You can check to see what currently is in the term by using wp_get_object_terms(), you can run logic on this and decide what to put into the database, and whether you’re amending the current data or creating entirely new data.