Since you’re using the same key for all the values you can simply use:
update_post_meta($this->current_post_id, 'assigned-sales', $response->records);
This will store the whole array in a single meta entry with key of ‘assigned-sales’. WordPress will update the value if it exists and create new one otherwise, no need to have logic for that.
In case you insist on having separate meta key for each array entry you should add some sort of index to each meta key to make it unique (this is assuming you want each one and not just the latest value of the same).
I think this should do the trick:
foreach ($response->records as $key=>$record) {
$sales="ten"; // <-- Where is this coming from?
update_post_meta($this->current_post_id, 'assigned-sales-'.$key, $sales);
}
And here also the logic for add/update is redundant and you don’t need a separate function.
It all depends on what you’re after so if your issue persist, please clarify the question and what the use of the data is.