I'm writing a Rails service in which a series of operations are performed on a record:

    class RecordBaseAmountService
    
       self.build
          new
       end

	   def call(record, subrecord)
          record = calculate_base_amount(record, subrecord)
          record = adjust_base_amount(record, subrecord)
          record = pro_rate_record(record, subrecord) if subrecord.is_prorated?
          
          return record
       end

	   private
 
	   def calculate_base_amount(record, subrecord)
	      if subrecord.type == 0
             base_amount = 10
          elsif subrecord.type == 1
             base_amount = 20
          else
             base_amount = 30
          end
           
          record.base_amount = base_amount
          record.audit_field += "=>base amount calculated"
          record
       end

       def adjust_base_amount(record, subrecord)
          record.base_amount = record.base_amount*30
          record.audit_field += "=>base amount adjusted"
          record
       end

       def pro_rate_record(record, subrecord)
          record.pro_rated_amount = record.base_amount*subrecord.pro_rate
          record.base_amount = record.base_amount - record.pro_rated_amount
          record.audit_field += "=>prorated"
          record
       end
	end

I'm highly concerned about thread safety, which I have no experience with. Is this code thread safe? Any comments on any improvements to be made?