The last parameter in the selectValues method is just for that. Check out:http://help.qlik.com/sense/en-us/developer/#../Subsystems/Workbench/Content/BuildingExtensions/API/backendApi/MethodSelectValues.htm
If true, values in the field are selected in addition to any previously selected items.
If false, values in the field are selected while previously selected items are deselected.
so perhaps self.backendApi.selectValues(dim, [value], false); is what you need.
Just to add to this answer, setting the third parameter to true, as such:
backendApi.selectValues(dim, [value], true);
Will not only add any new selections made to previously selected items, but also will de-select/unselect any selections made that are already in the current selection. i.e. when set to true, if the user clicks on an item that is already selected then this item will be removed from the current selection.