Setter method for an object using a special logic
Why do you recreate this.exits every time you add new items? This:
                    final List&lt;CoordinateBE&gt; result = new ArrayList&lt;&gt;();
                    result.addAll(getExits());
                    result.addAll(exits);
                    this.exits = result;

could be simplified to
                    this.exits.addAll(exits);


If coordinates are always meaningfully equal based on latitude + longitude, you may want to override equals() and hashCode() so that so you can better leverage built-in methods. With an overrided equals(), you would not need compareCoordinates, and existenceOfCoordinates could be replaced with collection methods.
For example:
private boolean existenceOfCoordinates2(List&lt;CoordinateBE&gt; a, List&lt;CoordinateBE&gt; b) {
  return b.stream().anyMatch(a::contains);
}


With the above simplifications, (I'll skip the equals() override in case you actually don't want that), it's distilled down to:
public void setExits(final List&lt;CoordinateBE&gt; exits) {
  if (!getExits().isEmpty()) {
    // Check that no new exits are already in the list
    for (CoordinateBE exit : getExits()) {
      if (exits.stream().anyMatch(x -&gt; compareCoordinates(x, c))) {
        return;
      }
    }
  }

  this.exits.addAll(exits);
}


// If CoordinateBE overrides equals(), you could also do:

public void setExits(final List&lt;CoordinateBE&gt; exits) {
  // In this case, I'm not checking whether this.exits is empty, because
  // we're streaming the new exits as opposed to the current, and that stream
  // will just be empty if the new exits are empty.
  if (exits.stream().anyMatch(this.exits::contains)) {
    return;
  }
  this.exits.addAll(exits);
}


Finally, I am assuming that order is important here, which is why you're using a List as opposed to a Set. Even so, if you're okay with overriding equals() and if duplicates are not allowed, using a LinkedHashSet for this.exits would likely be faster beyond lists of a few dozen elements.