This is what you could do, although I don't think it's a terrific idea.
UPDATE configuration
SET value =
CASE parameter
WHEN 'VER' THEN new_ver_value
WHEN 'DATE' THEN new_date_value
END
WHERE deviceid = 'id12345';
Parameter tables like this are generally considered a bad idea, as the complexity of this query helps illustrate. Also, since you say that all the devices have the same parameters, doing this instead of having a unique column for each parameter doesn't seem to achieve anything useful.
Also if possible use just a number for the deviceid instead of a string.
As requested, to update an additional field, like a time field set to the current_time, you could do the following.
UPDATE configuration
SET value =
CASE parameter
WHEN 'VER' THEN new_ver_value
WHEN 'DATE' THEN new_date_value
END,
time = current_time
WHERE deviceid = 'id12345'
AND parameter IN ('VER', 'DATE');
For the first query, here is a test to show the result.
CREATE TABLE configuration
(deviceid CHARACTER VARYING (20),
parameter CHARACTER VARYING (10),
VALUE integer);
INSERT INTO configuration
(VALUES ('id12345', 'VER', 1),
('id12345', 'DATE', 20190101),
('id12345', 'COMPANY', 55),
('id33333', 'VER', 2),
('id33333', 'DATE', 20180101),
('id33333', 'COMPANY', 6));
SELECT * FROM configuration;
id12345 VER 1
id1234 DATE 20190101
id12345 COMPANY 55
id33333 VER 2
id33333 DATE 20180101
id33333 COMPANY 6
UPDATE configuration
SET value =
CASE parameter
WHEN 'VER' THEN 11
WHEN 'DATE' THEN 2020010
END
WHERE deviceid = 'id12345'
AND parameter IN ('VER', 'DATE');
SELECT * FROM configuration;
id12345 COMPANY 55
id33333 VER 2
id33333 DATE 20180101
id33333 COMPANY 6
id12345 VER 11
id12345 DATE 2020010