@Sudo
No it does not touch expiration date, it jsut update publish date and wipe modification date.
You can take a look on it here;
oc-content/plugins/osclass_pay/functions.php
Item::newInstance()->dao->query(sprintf('UPDATE %st_item SET dt_pub_date = "%s" WHERE pk_i_id = %d', DB_TABLE_PREFIX, date('Y-m-d H:i:s'), $item_id));
Item::newInstance()->dao->query(sprintf('UPDATE %st_item SET dt_mod_date = NULL WHERE pk_i_id = %d', DB_TABLE_PREFIX, $item_id));
To update expiration date you could add something like this:
Item::newInstance()->dao->query(sprintf('UPDATE %st_item SET dt_expiration = "%s" WHERE pk_i_id = %d', DB_TABLE_PREFIX, $some_date_in_future, $item_id));
and set to variable $some_date_in_future correct value.