Case statements for multiple fields when only certain cases exist for each field
The single-UPDATE you have seems reasonable.  However, depending on statistics and how well the Optimizer handles IN, this 2-UPDATE approach may be faster.

Either will benefit from

INDEX(bill_id, stockid)


The order of the columns in the index matters.  bill_id needs to be first for the single-update with the CASE statement.  Doing multiple UPDATEs, as follows, would not care which order the INDEX is written.

UPDATE `billlineitem` 
    SET    `rate` =  '40',
           `updated_billitemquantity_at` = '2019-09-06 05:16:06.219' 
    WHERE bill_id = 1
      AND stockid = 11;
UPDATE `billlineitem` 
    SET    `rate` =  '5',
           `updated_billitemquantity_at` = '2019-09-06 05:16:06.219' 
    WHERE bill_id = 1
      AND stockid = 10;


(For updating 15 rows, there would need to be 15 UPDATE statements; this may be impractical.)